package com.wiselink.naver.productcatalog.request;


import com.wiselink.naver.productcatalog.request.enums.ChannelProductDisplayStatusType;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import javax.validation.constraints.NotNull;

/**
 * 购物橱窗渠道产品信息结构
 * 该结构是表示商品信息中与购物橱频道商品属性对应的商品数据的结构。
 * <p>
 * 此结构用于 API 调用的请求/响应。
 * 该结构的一个对象代表一种产品的购物橱窗渠道产品信息。
 * 每个产品单元的购物橱渠道产品信息仅包含在单个结构中，但可以与原始产品结构或智能商店渠道产品结构一起使用，作为分层结构中的姐妹实体。
 * 下面的 API 中使用了该结构。
 * 产品注册、渠道产品查询、渠道产品修改、原产品查询、原产品修改等
 */
@Getter
@Setter
@ToString(callSuper = true)
public class WindowChannelProduct {
    /**
     * 渠道商品专用商品名
     * <p>如使用渠道商品专用名称，请填写。 未输入时适用原商品名。</p>
     * 채널 상품 전용 상품명
     * 채널 상품 전용 상품명을 사용하는 경우 입력합니다. 미입력 시 원상품명으로 적용됩니다.
     */
    private String channelProductName;
    /**
     * 内容帖子序列号
     * 콘텐츠 게시글 일련번호
     */
    private Integer bbsSeq;
    /**
     * 是否为同意接受通知的会员专用商品
     * <p>未输入时保存为false。</p>
     * 알림받기 동의 회원 전용 상품 여부
     * 미입력 시 false로 저장됩니다.
     */
    private Boolean storeKeepExclusiveProduct;
    /**
     * NAVER购物登记与否
     * <p>如果不是NAVER购物广告商，则保存为false。</p>
     * 네이버 쇼핑 등록 여부
     * 네이버 쇼핑 광고주가 아닌 경우에는 false로 저장됩니다.
     */
    @NotNull(message = "NAVER购物登记与否不能为空")
    private Boolean naverShoppingRegistration;
    /**
     * Windows频道商品频道编号
     * <p>选择要显示的 Windows 通道</p>
     * 윈도 채널 상품 채널 번호
     * 전시할 윈도 채널 선택
     */
    @NotNull(message = "Windows频道商品频道编号不能为空")
    private Integer channelNo;

    /**
     * 最佳与否( Windows 频道专用)
     * <p>未输入时保存为false。</p>
     * 베스트 여부(윈도 채널 전용)
     * 미입력 시 false로 저장됩니다.
     */
    private Boolean best;
    /**
     * 显示状态代码( Windows 通道只读)
     * 전시 상태 코드(윈도 채널 읽기 전용)
     */
    private ChannelProductDisplayStatusType channelProductDisplayStatusType;
}
